home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Xenosoft 2
/
Xenosoft 2 (Game collection)(1994).iso
/
bioforge
/
script
/
elevator.scp
< prev
next >
Wrap
Text File
|
1994-11-29
|
18KB
|
840 lines
// ELEVATOR COMMON SCRIPT
{ SWITCHTOTOWERLEVEL
@Çå (`Çì , 150, -3072)
I ( ^à╝ == $é╛ ) THEN
{
// PLEASE LEAVE THIS IN, I USE IT FOR TESTING ALL THE TIME.
// IS THERE SOME BUG THAT WARRANTS REMOVING IT? -KLD
@Ç¥ ELEVATOR_DOOR_OPEN
^ä₧ = $é║
é
}
^Ç┤ ++
// CHAOS AND TOWER USE DR7, CONTROL AND LANPAD USE DR9
I ^à╝ = $é┐ OR ^à╝ = $é╛ THEN
^ä₧ = $é╗
E
^äƒ = $é╗
^å¡ = 1
@Ç¥ ELEVATOR_DOOR_CLOSE
@Ç¥ ELEVATOR_ENERGY_WARNING
â
@Ç¥ ELEVATOR_ANIM $é╛
W 5
// SUSPENDWHILE @FADE ( DOWN )
^åò = 0
@Çî (^êì , 100, 0, 30)
N ^à╝
{
U $é┐
// MAKE MECHO STOP WALKING
I @Ç¢ (HALMECHO) THEN
A OFF
@Ç¢ (PLAYER)
S TOWER ELH ELT ^êì
X ÇÇ
U $âÇ
@Ç¢ (PLAYER)
S TOWER ELC ELT ^êì
X ÇÇ
U $âü
@Ç¢ (PLAYER)
S TOWER ELV ELT ^êì
X ÇÇ
}
// THIS VARIABLE SHOULD BE SET IN {LEVEL}_LOAD, NOT HERE.
//_CURRENT_LEVEL = _TOWER_LEVEL
â
â
(^êì )
// @FADE ( UP )
@Ç¥ ELEVATOR_TOWER_DEST
â
// AI ON
@Ç¥ ELEVATOR_DOOR_OPEN
â
^ä₧ = $é║
@Çì TOWERAUTOELEVATORCLOSE
^å¡ = 0
^Ç┤ --
}
{ SWITCHTOCHAOSLEVEL
@Çå (`Çì , 150, -3072)
I ( ^à╝ == $é┐ ) THEN
{
// PLEASE LEAVE THIS IN, I USE IT FOR TESTING ALL THE TIME.
// IS THERE SOME BUG THAT WARRANTS REMOVING IT? -KLD
@Ç¥ ELEVATOR_DOOR_OPEN
^ä₧ = $é║
é
}
^Ç┤ ++
// CHAOS AND TOWER USE DR7, CONTROL AND LANPAD USE DR9
I ^à╝ = $é┐ OR ^à╝ = $é╛ THEN
^ä₧ = $é╗
E
^äƒ = $é╗
^å¡ = 1
@Ç¥ ELEVATOR_DOOR_CLOSE
@Ç¥ ELEVATOR_ENERGY_WARNING
I ^éé = 17 THEN
@Ç¥ ELEVATOR_WINDOW_RESET
@Ç¥ ELEVATOR_ANIM $é┐
// WAIT 70
// SUSPENDWHILE @FADE ( DOWN )
@Çî (^êì , 100, 0, 30)
N ^à╝
{
U $é╛
S CHAOS ELT ELH ^êì
@Ç¢ (HALMECHO)
A ON
@Ç¢ (PLAYER)
X Çü
U $âÇ
S CHAOS ELC ELH ^êì
@Ç¢ (HALMECHO)
A ON
@Ç¢ (PLAYER)
X Çü
U $âü
S CHAOS ELV ELH ^êì
@Ç¢ (HALMECHO)
A ON
@Ç¢ (PLAYER)
X Çü
}
// THIS VARIABLE SHOULD BE SET IN {LEVEL}_LOAD, NOT HERE.
//_CURRENT_LEVEL = _CHAOS_LEVEL
â
â
// @FADE ( UP )
(^êì )
// AI ON
@Ç¥ ELEVATOR_DOOR_OPEN
^ä₧ = $é║
@Çì CHAOSAUTOELEVATORCLOSE
^å¡ = 0
^Ç┤ --
}
{ SWITCHTOCONTROLLEVEL
@Çå (`Çì , 150, -3072)
I ( ^à╝ == $âÇ ) THEN
{
// PLEASE LEAVE THIS IN, I USE IT FOR TESTING ALL THE TIME.
// IS THERE SOME BUG THAT WARRANTS REMOVING IT? -KLD
@Ç¥ ELEVATOR_DOOR_OPEN
^äƒ = $é║
é
}
^Ç┤ ++
// CHAOS AND TOWER USE DR7, CONTROL AND LANPAD USE DR9
I ^à╝ = $é┐ OR ^à╝ = $é╛ THEN
^ä₧ = $é╗
E
^äƒ = $é╗
^å¡ = 1
@Ç¥ ELEVATOR_DOOR_CLOSE
@Ç¥ ELEVATOR_ENERGY_WARNING
I ^éé = 17 THEN
@Ç¥ ELEVATOR_WINDOW_RESET
@Ç¥ ELEVATOR_ANIM $âÇ
// WAIT 2 SECONDS
// SUSPENDWHILE @FADE ( DOWN )
@Çî (^êì , 100, 0, 30)
N ^à╝
{
U $é╛
@Ç¢ (PLAYER)
S CONTROL ELT ELC ^êì
X Çé
U $é┐
I @Ç¢ (HALMECHO) THEN
A OFF
@Ç¢ (PLAYER)
S CONTROL ELH ELC ^êì
X Çé
U $âü
@Ç¢ (PLAYER)
S CONTROL ELV ELC ^êì
X Çé
}
// THIS VARIABLE SHOULD BE SET IN {LEVEL}_LOAD, NOT HERE.
//_CURRENT_LEVEL = _CONTROL_LEVEL
â
â
// @FADE ( UP )
(^êì )
// AI ON
@Ç¥ ELEVATOR_DOOR_OPEN
^äƒ = $é║
@Çì CONTROLAUTOELEVATORCLOSE
^å¡ = 0
^Ç┤ --
}
{ SWITCHTOLANDINGLEVEL
@Çå (`Çì , 150, -3072)
I ( ^à╝ == $âü ) THEN
{
é
}
^Ç┤ ++
// CHAOS AND TOWER USE DR7, CONTROL AND LANPAD USE DR9
I ^à╝ = $é┐ OR ^à╝ = $é╛ THEN
^ä₧ = $é╗
E
^äƒ = $é╗
^åÉ = 1
^å¡ = 1
@Ç¥ ELEVATOR_DOOR_CLOSE
@Ç¥ ELEVATOR_ENERGY_WARNING
I ^éé == 17 THEN
{
@Ç¥ ELEVATOR_WINDOW_RESET
}
@Ç¥ ELEVATOR_ANIM $âü
// WAIT 2 SECONDS
// SUSPENDWHILE @FADE ( DOWN )
@Çî (^êì , 100, 0, 30)
N ^à╝
{
U $é╛
@Ç¢ (PLAYER)
S LANDPAD ELT ELV ^êì
X Çâ
U $é┐
I @Ç¢ (HALMECHO) THEN
A OFF
@Ç¢ (PLAYER)
S LANDPAD ELH ELV ^êì
X Çâ
U $âÇ
@Ç¢ (PLAYER)
S LANDPAD ELC ELV ^êì
X Çâ
}
// THIS VARIABLE SHOULD BE SET IN {LEVEL}_LOAD, NOT HERE.
//_CURRENT_LEVEL = _LANDPAD_LEVEL
â
â
(^êì )
// @FADE( UP )
:OPENTHEDOOR
@Ç¥ ELEVATOR_DOOR_OPEN
^äƒ = $é║
^å¡ = 0
@Çì LANDINGAUTOELEVATORCLOSE
^Ç┤ --
}
{ TOWERAUTOELEVATORCLOSE
// HERE WE HAVE OUR AUTO-DOOR CLOSING CODE
// AS LONG AS WE ARE INSIDE THE ELEVATOR OR WITHIN 450CM OF THE DOOR,
// THEN DON'T CLOSE THE DOOR -BES
:TOP
â
// WAIT UNTIL THE DOOR IS FINISHED OPENING BEFORE TRYING TO CLOSE IT
// AGAIN
I ^å¼ THEN J #Çå
// MAKE SURE THE PLAYER HASN'T PRESSED THE CLOSE BUTTON ON US
I ^ä₧ = $é╗ THEN é
I ^à╝ != $é╛ THEN é
I @Çí (CURFIG,ELT) OR @Ǽ (CURFIG,DR7) < 450 THEN J #Çå
// OKAY, THE PLAYER IS OUT OF RANGE SO CLOSE THE DOOR
@Çì ELEVATOR_DOOR_CLOSE
^ä₧ = $é╗
}
{ CHAOSAUTOELEVATORCLOSE
:TOP
â
I ^å¼ THEN J #Çê
I ^ä₧ = $é╗ THEN é
I ^à╝ != $é┐ THEN é
I @Ç¡ (CURFIG,ELH) OR @Ǽ (CURFIG,DR7) < 550 THEN J #Çê
@Çì ELEVATOR_DOOR_CLOSE
^ä₧ = $é╗
}
{ CONTROLAUTOELEVATORCLOSE
:TOP
â
I ^å¼ THEN J #Çè
I ^äƒ = $é╗ THEN é
I ^à╝ != $âÇ THEN é
I @Ç¡ (CURFIG,ELC) OR @Ǽ (CURFIG,DR9) < 550 THEN J #Çè
@Çì ELEVATOR_DOOR_CLOSE
^äƒ = $é╗
}
{ LANDINGAUTOELEVATORCLOSE
:TOP
â
I ^å¼ THEN J #Çî
I ^äƒ = $é╗ THEN é
I ^à╝ != $âü THEN é
I @Ç¡ (CURFIG,ELV) OR @Ǽ (CURFIG,DR9) < 550 THEN J #Çî
@Çì ELEVATOR_DOOR_CLOSE
^äƒ = $é╗
}
[ ELEVATOR_WINDOW_RESET
00:00 ^éé = 17
00:03 ^éé = 16
00:06 ^éé = 15
00:09 ^éé = 14
^éü = 6
00:12 ^éé = 13
^éü = 5
00:15 ^éé = 12
^éü = 4
00:18 ^éé = 11
^éü = 3
00:21 ^éé = 10
^éü = 2
00:24 ^éé = 9
^éü = 1
]
[ ELEVATOR_TOWER_DEST
00:00 ^éé = 9
^éü = 1
00:03 ^éé = 10
^éü = 2
00:06 ^éé = 11
^éü = 3
00:09 ^éé = 12
^éü = 4
00:12 ^éé = 13
^éü = 5
00:15 ^éé = 14
^éü = 6
00:18 ^éé = 15
00:21 ^éé = 16
00:24 ^éé = 17
]
[ ELEVATOR_ANIM _LEVEL
^êì = @Çç (`ÇÆ 100)
// _CYCLE4 = 0
I ~ÇÇ < ^à╝ THEN
{
// :ANIMLOOP1
00:00 ^éü = 1
^éé = 1
00:03 ^éü = 2
^éé = 2
00:06 ^éü = 3
^éé = 3
00:09 ^éü = 4
^éé = 4
00:12 ^éü = 5
^éé = 5
00:15 ^éü = 6
^éé = 6
00:18 ^éü = 1
^éé = 7
00:21 ^éü = 2
^éé = 8
00:24 ^éü = 3
^éé = 1
00:27 ^éü = 4
^éé = 2
01:00 ^éü = 5
^éé = 3
01:03 ^éü = 6
^éé = 4
01:06 ^éü = 1
^éé = 5
01:09 ^éü = 2
^éé = 6
01:12 ^éü = 3
^éé = 7
01:15 ^éü = 4
^éé = 8
01:18 ^éü = 5
^éé = 1
01:21 ^éü = 6
^éé = 2
01:24 ^éü = 1
^éé = 3
01:27 ^éü = 2
^éé = 4
02:00 ^éü = 3
^éé = 5
02:03 ^éü = 4
^éé = 6
02:06 ^éü = 5
^éé = 7
02:09 ^éü = 6
^éé = 8
02:12 ^éü = 1
^éé = 1
02:15 ^éü = 2
^éé = 2
02:18 ^éü = 3
^éé = 3
02:21 ^éü = 4
^éé = 4
02:24 ^éü = 5
^éé = 5
02:27 ^éü = 6
^éé = 6
03:00 ^éü = 1
^éé = 7
03:03 ^éü = 2
^éé = 8
03:06 ^éü = 3
^éé = 1
03:09 ^éü = 4
^éé = 2
03:12 ^éü = 5
^éé = 3
03:15 ^éü = 6
^éé = 4
03:18 ^éü = 1
^éé = 5
03:21 ^éü = 2
^éé = 6
03:24 ^éü = 3
^éé = 7
03:27 ^éü = 4
^éé = 8
04:00 ^éü = 5
^éé = 1
04:03 ^éü = 6
^éé = 2
04:06 ^éü = 1
^éé = 3
04:09 ^éü = 2
^éé = 4
04:12 ^éü = 3
^éé = 5
04:15 ^éü = 4
^éé = 6
04:18 ^éü = 5
^éé = 7
04:21 ^éü = 6
^éé = 8
}
I ~ÇÇ > ^à╝ THEN
{
00:00 ^éü = 6
^éé = 8
00:03 ^éü = 5
^éé = 7
00:06 ^éü = 4
^éé = 6
00:09 ^éü = 3
^éé = 5
00:12 ^éü = 2
^éé = 4
00:15 ^éü = 1
^éé = 3
00:18 ^éü = 6
^éé = 2
00:21 ^éü = 5
^éé = 1
00:24 ^éü = 4
^éé = 8
00:27 ^éü = 3
^éé = 7
01:00 ^éü = 2
^éé = 6
01:03 ^éü = 1
^éé = 5
01:06 ^éü = 6
^éé = 4
01:09 ^éü = 5
^éé = 3
01:12 ^éü = 4
^éé = 2
01:15 ^éü = 3
^éé = 1
01:18 ^éü = 2
^éé = 8
01:21 ^éü = 1
^éé = 7
01:24 ^éü = 6
^éé = 6
01:27 ^éü = 5
^éé = 5
02:00 ^éü = 4
^éé = 4
02:03 ^éü = 3
^éé = 3
02:06 ^éü = 2
^éé = 2
02:09 ^éü = 1
^éé = 1
02:12 ^éü = 6
^éé = 8
02:15 ^éü = 5
^éé = 7
02:18 ^éü = 4
^éé = 6
02:21 ^éü = 3
^éé = 5
02:24 ^éü = 2
^éé = 4
02:27 ^éü = 1
^éé = 3
03:00 ^éü = 6
^éé = 2
03:03 ^éü = 5
^éé = 1
03:06 ^éü = 4
^éé = 8
03:09 ^éü = 3
^éé = 7
03:12 ^éü = 2
^éé = 6
03:15 ^éü = 1
^éé = 5
03:18 ^éü = 6
^éé = 4
03:21 ^éü = 5
^éé = 3
03:24 ^éü = 4
^éé = 2
03:27 ^éü = 3
^éé = 1
04:00 ^éü = 2
^éé = 8
04:03 ^éü = 1
^éé = 7
04:06 ^éü = 6
^éé = 6
04:09 ^éü = 5
^éé = 5
04:12 ^éü = 4
^éé = 4
04:15 ^éü = 3
^éé = 3
04:18 ^éü = 2
^éé = 2
04:21 ^éü = 1
^éé = 1
}
]
// ----------------- MONITOR INTERFACE SECTION -------------------
// SECTION #S AND DESCRIPTIONS REFERENCE REFERENCE THE
// BIOFORGE SCREENPLAY 2/14/94
// 7.16 ELEVATOR/ELEVATOR CONTROLS
- IN ALL LEVELS MODULE
{ ELEVATOR_MONITOR
P ~ÇÇ
I ( @Çú () ) THEN é
~ÇÇ = ^à╝
^åû = 0
"ELMN"
("TOWB", $Ǽ , "/! ")
("KAOB", $Ǽ , "/! ")
("CONB", $Ǽ , "/! ")
("AIRB", $Ǽ , "/! ")
("LV5B", $Ǽ , "/! ")
("LV6B", $Ǽ , "/! ")
N (~ÇÇ )
{
U $é╛
("TOWB", $Ç¡ )
X Çä
U $é┐
("KAOB", $Ç¡ )
X Çä
U $âÇ
("CONB", $Ç¡ )
X Çä
V
//CASE _LANDPAD_LEVEL
("AIRB", $Ç¡ )
X Çä
}
@Çì ELEVATOR_MONITOR_LOOP
N (~ÇÇ )
{
U $é╛
("NUML", $Ǽ , "/!1")
X Çà
U $é┐
("NUML", $Ǽ , "/!2")
X Çà
U $âÇ
("NUML", $Ǽ , "/!3")
X Çà
U $âü
("NUML", $Ǽ , "/!4")
X Çà
}
("CARA",~ÇÇ )
:LOOP
â
J #Çæ
:TOWB_BUTTON
@Çå (`üÉ )
~ÇÇ = $é╛
J #Çÿ
:KAOB_BUTTON
@Çå (`üÉ )
~ÇÇ = $é┐
J #Çÿ
:CONB_BUTTON
@Çå (`üÉ )
~ÇÇ = $âÇ
J #Çÿ
:AIRB_BUTTON
@Çå (`üÉ )
~ÇÇ = $âü
J #Çÿ
:LV5B_BUTTON
@Çå (`ä¡ )
W 5
@Ç║ `ÇÖ "ELEV: This level is inaccessible."
i LEX ELEV
J #Çæ
:LV6B_BUTTON
@Çå (`ä¡ )
W 5
@Ç║ `ÇÖ "ELEV: This level is inaccessible."
i LEX ELEV
J #Çæ
:CHANGE_LEVEL
^êì = @Çç (`ÇÆ , 100)
^åû = 1
("CARA",~ÇÇ )
N (~ÇÇ )
{
U $é╛
("NUML","/!1")
X Çå
U $é┐
("NUML","/!2")
X Çå
U $âÇ
("NUML","/!3")
X Çå
U $âü
("NUML","/!4")
X Çå
}
â
â
â
N (~ÇÇ )
{
U $é╛
@Çì SWITCHTOTOWERLEVEL
X Çç
U $é┐
@Çì SWITCHTOCHAOSLEVEL
X Çç
U $âÇ
@Çì SWITCHTOCONTROLLEVEL
X Çç
U $âü
@Çì SWITCHTOLANDINGLEVEL
X Çç
}
J #Ç¢
:ESCAPE_BUTTON
@Çå (PIM_BEEP_6)
:DO_NOT_CHANGE_LEVELS
^åû = 1
:DONE
}
{ ELEVATOR_MONITOR_LOOP
:LOOP
I ^åû > 0 THEN J #Ç₧
("FSHA",0)
â
â
I ^åû > 0 THEN J #Ç₧
("FSHA",1)
â
â
I ^åû > 0 THEN J #Ç₧
("FSHA",2)
â
â
I ^åû > 0 THEN J #Ç₧
("FSHA",1)
â
â
J #Ç¥
:DONE
}
// *** REAL-TIME PROCESSES SECTION
// *****FINAL*****
[ ELEVATOR_DOOR_OPEN
00:00 ^å¼ = 1
I ^Ǭ != 1 THEN é
@Çå `ÇÅ
^Ǭ = 1
00:07 ^Ǭ = 2
00:13 ^Ǭ = 3
00:17 ^Ǭ = 4
00:23 ^Ǭ = 5
00:28 ^Ǭ = 6
01:04 ^Ǭ = 7
01:08 ^Ǭ = 8
(^êä 50)
// 01:09 IF @SETCURRENTFIGURE(HALMECHO) THEN
// AI ON
01:10 ^å¼ = 0
]
[ ELEVATOR_ENERGY_WARNING
I @Çæ (RTHAND, BLASTER) OR @Çæ (RTHAND, TONFA) THEN
{
00:00 ^å╣ =
@Ç║ `ä« "Please secure all sidearms.
/FS.V.P, attachez solidement votre arme.
/GBitte sichern sie ihre Waffen."
03:00 ^å╣ =
@Ç║ `ä» "Energy discharges in this chamber~are extremely hazardous.
/FLes décharges d'énergie dans cette pièce~sont extrêmement dangereuses.
/GEnergieentladungen in diesem Raum~sind sehr gefährlich."
}
]
[ ELEVATOR_DOOR_CLOSE
00:00 I ^Ǭ != 8 THEN é
^å¼ = 1
@Çå (`ÇÉ , DR7)
00:11 ^Ǭ = 8
00:17 ^Ǭ = 7
00:23 ^Ǭ = 6
00:28 ^Ǭ = 5
01:03 ^Ǭ = 4
01:08 ^Ǭ = 3
01:13 ^Ǭ = 2
01:18 ^Ǭ = 1
^êä = @Çê ()
(^êä 0)
// 01:19 IF @SETCURRENTFIGURE(HALMECHO) THEN
// AI OFF
^å¼ = 0
]
//$ 26 - version number